home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / DCODE.ASM < prev    next >
Encoding:
Assembly Source File  |  1998-06-02  |  3.4 KB  |  148 lines

  1. .DATA
  2. ;---───────════════════════════════════════════════════════════════───────----
  3. ERROR_TXT db "iNcORRECT fILE! :-P",0
  4. GOOD_TXT  db "    cORRECT  !! :-)",0
  5.  
  6. Fname   db "CrkMe4.Dat",0
  7. hFile   dd 0
  8.  
  9. SBuff   dd 0
  10.  
  11. Table1  db 16 dup (0)
  12. Table2  db 16 dup (0)
  13.  
  14. X  db 0
  15. Y  db 0
  16. Z  db 0
  17. T  db 0
  18.  
  19. A1 db 0
  20. A2 db 0
  21. B1 db 0
  22. B2 db 0
  23. C1 db 0
  24. C2 db 0
  25.  
  26. .CODE
  27. ;---───────════════════════════════════════════════════════════════───────----
  28. Crack_proc      PROC
  29.         USES ebx,ecx,edx,esi,edi,ebp        ;  Don't forget this 
  30.  
  31.         Call CreateFileA , OFFSET Fname , 0C0000000h ,3,0,3,80h,0
  32.         cmp eax , INVALID_HANDLE_VALUE
  33.         jz Error
  34.         mov hFile , eax
  35.  
  36.  
  37.         Call ReadFile , hFile , OFFSET Table1 , 32 , OFFSET SBuff , NULL
  38.         Cmp dword ptr SBuff , 32
  39.         Mov ebx , 0
  40.         Jb Close_File
  41.  
  42.         Mov esi , OFFSET Table1
  43.         Call DeCode , esi, esi, 4
  44.  
  45.         Mov edi , OFFSET Table1
  46.         Add edi , 12
  47.         xor al , al
  48.         Mov ecx , 4
  49.         rep stosb
  50.  
  51.         Mov esi , OFFSET Table2
  52.         Call DeCode , esi, esi, 4
  53.  
  54.         Mov edi , OFFSET Table2
  55.         Add edi , 12
  56.         xor al , al
  57.         Mov ecx , 4
  58.         rep stosb
  59.  
  60.         Mov ebx , 1
  61.  
  62. Close_File:
  63.         Call CloseHandle , hFile
  64. Exit:
  65.         Cmp ebx , 0
  66.         Jz Error
  67.  
  68.  
  69. Correct:
  70.         Call    SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET GOOD_TXT
  71.         Call    SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET GOOD_TXT
  72.         RET
  73.  
  74.  
  75. Error:
  76.         Call    SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET ERROR_TXT
  77.         Call    SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET ERROR_TXT
  78.         RET
  79.  
  80. Crack_proc      ENDP
  81.  
  82. ;---───────════════════════════════════════════════════════════════───────----
  83.  
  84. DeCode          PROC   D_from:DWORD, D_to:DWORD, Count:Byte
  85.         Mov esi , dword ptr D_from
  86.         Mov edi , dword ptr D_to
  87.  
  88. @J1:    Mov  eax , dword ptr [esi]
  89.         Mov dword ptr X , eax
  90.         add esi , 4
  91.  
  92.         Sub byte ptr X , 20h            ;X:=X-20h
  93.         Sub byte ptr Y , 20h            ;Y:=Y-20h
  94.         Sub byte ptr Z , 20h            ;Z:=Z-20h
  95.         Sub byte ptr T , 20h            ;T:=T-20h
  96.  
  97.         Mov al , byte ptr X
  98.         Mov byte ptr A1 , al            ;A:=X
  99.  
  100.         Mov al , byte ptr Y
  101.         Mov bl , al                     ;Just save Y
  102.         and al , 0fh
  103.         Mov byte ptr B1 , al            ;B1:=Y and $0f
  104.  
  105.         And bl , 0f0h
  106.         shr bl , 4
  107.         mov byte ptr A2 , bl            ;A2:=( Y and $F0 ) shr 4
  108.  
  109.         Mov al , byte ptr Z
  110.         mov bl , al                     ;Just save Z
  111.         and al , 3
  112.         MOv byte ptr C1 , al            ;C1:=Z and $03
  113.  
  114.         and bl , 0fch
  115.         shr bl , 2
  116.         mov byte ptr B2 , bl            ;B2:=( Z and $FC ) shr 2
  117.  
  118.         Mov al , byte ptr T
  119.         mov byte ptr C2 , al            ;C2:=T
  120.  
  121.          Mov al,A1
  122.          Mov bl,A2
  123.          Shl al, 2
  124.          Or al,bl
  125.          Mov [edi] , al
  126.         Inc edi
  127.  
  128.          Mov al,B1
  129.          Mov bl,B2
  130.          Shl al, 4
  131.          Or al,bl
  132.          Mov [edi] , al
  133.         Inc edi
  134.  
  135.          Mov al,C1
  136.          Mov bl,C2
  137.          Shl al, 6
  138.          Or al,bl
  139.          Mov [edi] , al
  140.         Inc edi
  141.         Dec byte ptr Count
  142.         Jnz @J1
  143.  
  144.         Ret
  145. DeCode          ENDP
  146.  
  147. ;---───────════════════════════════════════════════════════════════───────----
  148.